Conjunt d'instruccions CLMUL

Carry-less Multiplication (CLMUL) és una extensió del conjunt d'instruccions x86 utilitzat pels microprocessadors d'Intel i AMD que va ser proposat per Intel el març de 2008 [1] i disponible als processadors Intel Westmere anunciats a principis de 2010. Matemàticament, la instrucció implementa la multiplicació de polinomis sobre el camp finit GF(2) on la cadena de bits representa el polinomi . La instrucció CLMUL també permet una implementació més eficient de la multiplicació estretament relacionada de camps finits més grans GF(2k) que el conjunt d'instruccions tradicional.[2]

Un ús d'aquestes instruccions és millorar la velocitat de les aplicacions que fan xifratge de blocs en mode Galois/Comptador, que depèn de la multiplicació de camp finit GF(2k). Una altra aplicació és el càlcul ràpid dels valors CRC,[3] inclosos els utilitzats per implementar l'algorisme LZ77 DEFLATE de la finestra lliscant en zlib i pngcrush.[4]

ARMv8 també té una versió de CLMUL. SPARC anomena la seva versió XMULX, per "multiplicació XOR".

  1. «Intel Software Network» (en anglès). Intel. Arxivat de l'original el 2008-04-07. [Consulta: 5 abril 2008].
  2. Shay Gueron. «Intel Carry-Less Multiplication Instruction and its Usage for Computing the GCM Mode – Rev 2.02» (en anglès). Intel, 20-04-2014. Arxivat de l'original el 2019-08-06.
  3. «Fast CRC Computation for Generic Polynomials Using PCLMULQDQ» (en anglès).
  4. Vlad Krasnov. «Fighting Cancer: The Unexpected Benefit Of Open Sourcing Our Code» (en anglès). CloudFlare, 08-07-2015. [Consulta: 4 setembre 2016].

© MMXXIII Rich X Search. We shall prevail. All rights reserved. Rich X Search